Packet processing apparatus and method for detecting duplicate acknowledgement packet

ABSTRACT

Provided are a packet processing apparatus and method for detecting a duplicate acknowledgement (ACK) packet. The packet processing apparatus initiates a session and then detects a retransmission packet and a duplicate ACK packet from input/output packets using statistic information related to packet retransmission. Accordingly, unnecessary traffic generated regardless of a user&#39;s intension can be blocked.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit under 35 U.S.C. §119(a) of a KoreanPatent Application No. 10-2012-0008499, filed on Jan. 27, 2012, theentire disclosure of which is incorporated herein by reference for allpurposes.

BACKGROUND

1. Field

The following description relates to network management and servicetechnology, and more particularly, to packet processing technology.

2. Description of the Related Art

Depending on network conditions, packet loss may occur regardless of auser's intention. The packet loss requires packet retransmission,leading to the generation of a duplicate acknowledgement (ACK) packet.Such unnecessary traffic can overload the network.

SUMMARY

The following description relates to a processing apparatus and methodfor detecting a duplicate acknowledgement (ACK) packet which isgenerated regardless of a user's intention.

In one general aspect, there is provided a packet processing apparatusincluding: a session processing unit initiating and managing a session;a statistic information storage unit storing statistic informationrelated to packet retransmission; and a packet detection unit detectinga retransmission packet and a duplicate ACK packet from input/outputpackets using the statistic information stored in the statisticinformation storage unit when the session processing unit initiates asession.

In another aspect, there is provided a packet processing methodincluding: initiating a session; and detecting a retransmission packetand a duplicate ACK packet from input/output packets using statisticinformation related to packet retransmission when the session isinitiated.

Other features and aspects will be apparent from the following detaileddescription, the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating the configuration of a packetprocessing apparatus according to an embodiment of the presentinvention;

FIG. 2 is a diagram illustrating the detailed configuration of a packetdetection unit according to an embodiment of the present invention;

FIG. 3 is a flowchart illustrating a packet processing method accordingto an embodiment of the present invention;

FIG. 4 is a flowchart illustrating a method of detecting aretransmission packet according to an embodiment of the presentinvention; and

FIG. 5 is a flowchart illustrating a method of detecting a duplicateacknowledgement (ACK) packet according to an embodiment of the presentinvention.

Throughout the drawings and the detailed description, unless otherwisedescribed, the same drawing reference numerals will be understood torefer to the same elements, features, and structures. The relative sizeand depiction of these elements may be exaggerated for clarity,illustration, and convenience.

DETAILED DESCRIPTION

The invention is described more fully hereinafter with reference to theaccompanying drawings, in which exemplary embodiments of the inventionare shown. Descriptions of well-known functions and constructions areomitted to increase clarity and conciseness. Also, the terms used in thefollowing description are terms defined taking into consideration thefunctions obtained in accordance with the present invention, and may bechanged in accordance with the option of a user or operator or a usualpractice. Therefore, the definitions of these terms should be determinedbased on the entire content of this specification.

FIG. 1 is a diagram illustrating the configuration of a packetprocessing apparatus 1 according to an embodiment of the presentinvention.

The packet processing apparatus 1 includes a session processing unit 10,a packet detection unit 12, a statistic information storage unit 14, anda data repository 16.

Depending on network conditions, packet loss may occur regardless of auser's intention. The packet loss requires packet retransmission,leading to the generation of a duplicate acknowledgement (ACK) packet.The packet processing apparatus 1 according to the present inventiondetects such duplicate ACK packets based on packet analysis and collectsstatistic information obtained through the packet analysis.

Specifically, the session processing unit 10 initiates and manages asession. According to an embodiment, the session processing unit 10initiates and manages a transmission control protocol (TCP) session. TCPis a protocol located at the transport layer and widely used for variousnetwork communications. According to an embodiment, the sessionprocessing unit 10 stores necessary information in the data repository16, so that a TCP session can be analyzed for each group of packets thathave the same information about five items, i.e., the destinationaddress, source address, destination port, source port, and protocol ofa TCP/IP header. In addition, the session processing unit 10 terminatessessions that are no longer valid.

When the session processing unit 10 initiates a session, the packetdetection unit 12 detects a retransmission packet and a duplicate ACKpacket from input/output packets. The input/output packets may be TCPpackets. The packet detection unit 12 uses statistic information forpacket detection. The statistic information may include a history ofACKs resulting from packet retransmissions and information about thenumber of retransmissions.

According to an embodiment of the present invention, the packetdetection unit 12 classifies and detects a retransmission packet as oneof two types: a fast retransmission packet and a time-out retransmissionpacket. The fast retransmission packet is a retransmission packetgenerated in response to a duplicate ACK sent by a receiving end tonotify a transmitting end of a packet loss when the receiving endpresumes the occurrence of the packet loss. The time-out retransmissionpacket is a retransmission packet generated when the transmitting endfails to receive an ACK until a predetermined period of time elapses andpresumes the failure of receiving the ACK as a packet loss.

According to an embodiment of the present invention, the packetdetection unit 12 classifies and detects a duplicate ACK packet as oneof two types: a duplicate ACK related to a time-out retransmission and aduplicate ACK related to a fast retransmission.

The statistic information storage unit 14 stores statistic informationrelated to packet retransmission in the data repository 16. Here, thestatistic information storage unit 14 may store a history of ACKs thatled to fast retransmissions and a history of ACKs that led to time-outretransmissions separately in the data repository 16. In addition, thestatistic information storage unit 14 may store only a predeterminedamount or more of information in order of latest to oldest by using aring buffer algorithm.

FIG. 2 is a diagram illustrating the detailed configuration of thepacket detection unit 12 shown in FIG. 1.

The packet detection unit 12 includes a retransmission packet detectionunit 120 and a duplicate ACK packet detection unit 122.

The retransmission packet detection unit 120 detects retransmissionpackets including a fast retransmission packet and a time-outretransmission packet. An embodiment in which the retransmission packetdetection unit 120 detects a retransmission packet will be describedlater with reference to FIG. 4.

The duplicate ACK packet detection unit 122 detects duplicate ACKpackets including a fast duplicate ACK packet and a time-out ACK packet.An embodiment in which the duplicate ACK packet detection unit 122detects a duplicate ACK packet will be described later with reference toFIG. 5.

FIG. 3 is a flowchart illustrating a packet processing method accordingto an embodiment of the present invention.

The packet processing apparatus 1 determines whether an input/outputpacket is a potential retransmission packet or a potential duplicate ACKpacket based on whether the input/output packet includes a payload. Thatis, it is determined whether the input/output packet includes thepayload (operation 300). When the input/output packet includes thepayload, it is determined that the input/output packet is a potentialretransmission packet. Then, it is determined whether the potentialretransmission packet is a retransmission packet (operation 310). Whenthe input/output packet does not include the payload, it is determinedthat the input/output packet is a potential duplicate ACK packet. Then,it is determined whether the potential duplicate ACK packet is aduplicate ACK packet (operation 320). A detailed process of detecting aretransmission packet will be described in FIG. 4, and a detailedprocess of detecting a duplicate ACK packet will be described in FIG. 5.

FIG. 4 is a flowchart illustrating a method of detecting aretransmission packet according to an embodiment of the presentinvention.

The packet processing apparatus 1 determines whether a potentialretransmission packet which includes a payload is a retransmissionpacket based on ACK history information (operation 400).

When it is determined in operation 400 that the potential retransmissionpacket is the retransmission packet, it is determined whether a fastretransmission flag has been set by a previous detection process(operation 410).

When it is determined in operation 410 that the fast retransmission flaghas been set, the retransmission packet is determined to be a fastretransmission packet. When it is determined in operation 410 that thefast retransmission flag has not been set, the retransmission packet isdetermined to be a time-out retransmission packet. When theretransmission packet is determined to be the time-out retransmissionpacket, a retransmission count is increased (operation 420). Theretransmission count is used as a conditional variable for detecting aduplicate ACK packet resulting from a time-out retransmission. Then, ACKinformation of the retransmission packet determined to be the time-outretransmission packet is stored in the ACK history information(operation 430). On the other hand, when it is determined in operation410 that the fast retransmission flag has been set, the retransmissionpacket is determined to be the fast retransmission packet, and ACKinformation of the retransmission packet determined to be the fastretransmission packet is stored in the ACK history information(operation 430).

FIG. 5 is a flowchart illustrating a method of detecting a duplicate ACKpacket according to an embodiment of the present invention.

The packet processing apparatus 1 determines whether a potentialduplicate ACK packet which does not include a payload is likely to be aduplicate ACK resulting from a time-out retransmission or a duplicateACK resulting in a fast retransmission based on a previous number ofretransmissions (operation 500).

When the previous number of retransmissions is greater than zero, thepacket processing apparatus 1 determines that the potential duplicateACK packet is likely to be the duplicate ACK resulting from the time-outretransmission. When the previous number of retransmissions is zero orless than zero, the packet processing apparatus 1 determines that thepotential duplicate ACK packet is likely to be the duplicate ACKresulting in the fast retransmission.

After operation 500, the packet processing apparatus 1 determineswhether the potential duplicate ACK packet is a duplicate ACK packetresulting from a time-out retransmission or a duplicate ACK packetresulting in a fast retransmission based on ACK history information.

Specifically, when the potential duplicate ACK packet is likely to bethe duplicate ACK resulting from the time-out retransmission, the packetprocessing apparatus 1 checks the ACK history information and determinesthat the potential duplicate ACK packet is the duplicate ACK packetresulting from the time-out retransmission when one or more ACKsmatching the potential duplicate ACK packet exist in the ACK historyinformation (operation 510). Then, the packet processing apparatus 1reduces a retransmission count to indicate that the potential duplicateACK packet has been determined to be the duplicate ACK packet resultingfrom the time-out retransmission (operation 520).

Meanwhile, when the potential duplicate ACK packet is likely to be theduplicate ACK resulting in the fast retransmission, the packetprocessing apparatus 1 checks the ACK history information and determinesthat the potential duplicate ACK packet is the duplicate ACK packetresulting in the fast retransmission when the number of ACKs matchingthe potential duplicate ACK packet is equal to or greater than a presetnumber (operation 530). Here, the preset number may be three. The packetprocessing apparatus 1 checks a fast retransmission flag to notify thata fast retransmission will occur (operation 540). The fastretransmission flag is used to determine whether a packet is a fastretransmission packet or a time-out retransmission packet. Thereafter,the packet processing apparatus 1 stores the ACK information in the ACKhistory (operation 550).

As described above, depending on network conditions, packet loss mayoccur regardless of a user's intention. The packet loss requires packetretransmission, leading to the generation of a duplicate ACK packet.According to an embodiment of the present invention, such a duplicateACK packet can be detected, thereby blocking unnecessary traffic.

Further, duplicate ACK packets generated regardless of a user'sintention can be detected, and statistic information related to theduplicate ACK packets can be collected and utilized. The statisticinformation can be utilized for, e.g., the precision billing system andcontrol in a wireless Internet service subject to usage-based billing.

The present invention has a simple structure and can detect aretransmission packet and a duplicate ACK packet resulting from aretransmission using minimum system resources.

Moreover, the present invention is capable of fast processing in varioussystems and network environments due to its simple and light structure.

While this invention has been particularly shown and described withreference to exemplary embodiments thereof, it will be understood bythose skilled in the art that various changes in form and details may bemade therein without departing from the spirit and scope of theinvention as defined by the appended claims. The exemplary embodimentsshould be considered in descriptive sense only and not for purposes oflimitation. Therefore, the scope of the invention is defined not by thedetailed description of the invention but by the appended claims, andall differences within the scope will be construed as being included inthe present invention.

What is claimed is:
 1. A packet processing apparatus comprising: amemory; and a processor configured to: initiate and manage, by a sessionprocessing unit, a session; store, by a statistic information storageunit, statistic information related to packet retransmission and packetinformation in the memory, wherein the packet information comprises adestination address, a source address, a destination port, a sourceport, and a protocol of a header; analyze the packet information foreach group of input/output packets that have the same packetinformation; determine, by a packet detection unit, statisticinformation based on the packet information, a retransmission flag, anumber of retransmissions of the input/output packet, and historyinformation of acknowledgements (ACKs) resulting from theretransmissions of the input/output packet; classify and detect aretransmission of the input/output packet and a duplicateacknowledgement (ACK) packet resulting from the retransmission of theinput/output packet using the statistic information; and determine, by aretransmission packet detection unit, whether a fast retransmission flaghas been set by a previous detection process when determining that apotential retransmission packet is the retransmission packet, whereinthe retransmission packet detection unit determines the retransmissionpacket to be a fast retransmission packet when determining that the fastretransmission flag has been set and determines the retransmissionpacket to be a time-out retransmission packet when determining that thefast retransmission flag has not been set, wherein the retransmissionpacket detection unit increases a retransmission count when determiningthat the retransmission packet is the time-out retransmission packet;wherein the retransmission packet detection unit stores ACK informationof the retransmission packet in the ACKs history information, andwherein the retransmission count is used as a conditional variable fordetecting a duplicate ACK packet resulting from a time-outretransmission.
 2. The apparatus of claim 1, wherein the sessionprocessing unit initiates a transmission control protocol (TCP) session,and the packet detection unit detects the retransmission packet and theduplicate ACK packet from TCP packets.
 3. The apparatus of claim 1,wherein the packet detection unit comprises: the retransmission packetdetection unit detecting retransmission packets comprising the fastretransmission packet and the time-out retransmission packet; and aduplicate ACK packet detection unit detecting the duplicate ACK packetscomprising a fast duplicate ACK packet and a time-out duplicate ACKpacket.
 4. The apparatus of claim 3, wherein the retransmission packetdetection unit detects the potential retransmission packet whichcomprises a payload and determines whether the potential retransmissionpacket is the retransmission packet based on the ACKs historyinformation.
 5. The apparatus of claim 3, wherein the duplicate ACKpacket detection unit detects a potential duplicate ACK packet whichdoes not comprise a payload, determines whether the potential duplicateACK packet is likely to be the duplicate ACK resulting from the time-outretransmission or the duplicate ACK resulting in the fast retransmissionbased on the number of retransmissions, and determines whether thepotential duplicate ACK packet is the duplicate ACK packet resultingfrom the time-out retransmission or the duplicate ACK packet resultingin the fast retransmission based on the ACKs history information.
 6. Theapparatus of claim 5, wherein the duplicate ACK packet detection unitdetermines that the potential duplicate ACK packet is likely to be theduplicate ACK resulting from the time-out retransmission when the numberof retransmissions is greater than zero and determines that thepotential duplicate ACK packet is likely to be the duplicate ACKresulting in the fast retransmission when the number of retransmissionsis zero or less than zero.
 7. The apparatus of claim 5, wherein when thepotential duplicate ACK packet is likely to be the duplicate ACKresulting from the time-out retransmission, the duplicate ACK packetdetection unit determines that the potential duplicate ACK packet is theduplicate ACK packet resulting from the time-out retransmission when oneor more ACKs matching the potential duplicate ACK packet exist in theACKs history information and reduces the retransmission count.
 8. Theapparatus of claim 5, wherein when the potential duplicate ACK packet islikely to be the duplicate ACK resulting in the fast retransmission, theduplicate ACK packet detection unit determines that the potentialduplicate ACK packet is the duplicate ACK packet resulting in the fastretransmission when the number of ACKs matching the potential duplicateACK packet in the ACKs history information is equal to or greater than apreset number and checks the fast retransmission flag.
 9. The apparatusof claim 5, wherein the statistic information storage unit stores ACKinformation of the time-out retransmission packet in a time-outretransmission ACK history information when the retransmission packetdetection unit determines that the potential retransmission packet isthe time-out retransmission packet and stores ACK information of thefast retransmission packet in a fast retransmission ACK historyinformation, which is separate from the time-out retransmission ACKhistory information, when the retransmission packet detection unitdetermines that the potential retransmission packet is the fastretransmission packet.
 10. The apparatus of claim 9, wherein thestatistic information storage unit stores information of only a presetsize or larger in order of latest to oldest by using a ring bufferalgorithm.
 11. A packet processing method comprising: initiating asession; analyzing the packet information for each group of input/outputpackets that have the same packet information, wherein the packetinformation comprises a destination address, a source address, adestination port, a source port, and a protocol of a header; anddetecting a retransmission of an input/output packet and a duplicateacknowledgement (ACK) packet of the input/output packet using statisticinformation related to packet retransmission and the packet informationwhen the session is initiated, wherein the statistic information isbased on the packet information, a retransmission flag, a number ofretransmissions of the input/output packet, and history information ofACKs resulting from the retransmissions of the input/output packet,wherein the detecting of the retransmission packet and the duplicate ACKpacket comprises: determining whether a fast retransmission flag hasbeen set by a previous detection process when determining that apotential retransmission packet is the retransmission packet;determining the retransmission packet to be a fast retransmission packetwhen determining that the fast retransmission flag has been set anddetermining the retransmission packet to be a time-out retransmissionpacket when determining that the fast retransmission flag has not beenset; increasing a retransmission count when determining that theretransmission packet is the time-out retransmission packet; and storingACK information of the retransmission packet in the ACKs historyinformation, wherein the retransmission count is used as a conditionalvariable for detecting a duplicate ACK packet resulting from a time-outretransmission.
 12. The method of claim 11, wherein the detecting of theretransmission packet and the duplicate ACK packet comprises: detectingthe potential retransmission packet which comprises a payload; anddetermining whether the potential retransmission packet is theretransmission packet based on the ACKs history information.
 13. Themethod of claim 11, wherein the detecting of the retransmission packetand the duplicate ACK packet comprises: detecting a potential duplicateACK packet which does not comprise a payload; determining whether thepotential duplicate ACK packet is likely to be the duplicate ACKresulting from the time-out retransmission or the duplicate ACKresulting in the fast retransmission based on the number ofretransmissions; and determining whether the potential duplicate ACKpacket is the duplicate ACK packet resulting from the time-outretransmission or the duplicate ACK packet resulting in the fastretransmission based on the ACKs history information.
 14. The method ofclaim 13, wherein in the determining of whether the potential duplicateACK packet is likely to be the duplicate ACK resulting from the time-outretransmission or the duplicate ACK resulting in the fastretransmission, it is determined that the potential duplicate ACK packetis likely to be the duplicate ACK resulting from the time-outretransmission when the number of retransmissions is greater than zeroand that the potential duplicate ACK packet is likely to be theduplicate ACK resulting in the fast retransmission when the number ofretransmissions is zero or less than zero.
 15. The method of claim 13,wherein the determining of whether the potential duplicate ACK packet isthe duplicate ACK packet resulting from the time-out retransmission orthe duplicate ACK packet resulting in the fast retransmission comprises:determining that the potential duplicate ACK packet which is likely tobe the duplicate ACK resulting from the time-out retransmission is theduplicate ACK packet resulting from the time-out retransmission when oneor more ACKs matching the potential duplicate ACK packet exist in theACKs history information; and reducing the retransmission count.
 16. Theapparatus of claim 13, wherein the determining of whether the potentialduplicate ACK packet is the duplicate ACK packet resulting from thetime-out retransmission or the duplicate ACK packet resulting in thefast retransmission comprises: determining that the potential duplicateACK packet which is likely to be the duplicate ACK resulting in the fastretransmission is the duplicate ACK packet resulting in the fastretransmission when the number of ACKs matching the potential duplicateACK packet in the ACKs history information is equal to or greater than apreset number; and checking the fast retransmission flag.
 17. The methodof claim 13, wherein in the storing of the ACK information of theretransmission packet in the ACKs history information, ACK informationof the time-out retransmission packet is stored in a time-outretransmission ACK history information when the retransmission packet isdetermined to be the time-out retransmission packet, and ACK informationof the fast retransmission packet is stored in a fast retransmission ACKhistory information, which is separate from the time-out retransmissionACK history information, when the retransmission packet is determined tobe the fast retransmission packet.